package logic

import (
	"github.com/gin-gonic/gin"
	"github.com/vueadmin/app/api/internal/dto"
	"github.com/vueadmin/app/api/internal/service"
	"github.com/vueadmin/app/api/internal/svc"
	"github.com/vueadmin/app/api/internal/vo"
)

type linkLogic struct{
	ctx    *gin.Context
	svcCtx *svc.ServiceContext
}

func NewLinkLogic(ctx *gin.Context, svcCtx *svc.ServiceContext) *linkLogic {
	return &linkLogic{
		ctx: ctx,
		svcCtx: svcCtx,
	}
}

/**
 * @description(数据列表)
 * @buildcode(true)
*/
func (p linkLogic) GetPageList(req *dto.LinkPageReq) ([]*vo.LinkList, int64, error) {
	s := service.NewLinkService(p.svcCtx)
	return s.GetPageList(req)
}

/**
 * @description(添加)
 * @buildcode(true)
*/
func (p linkLogic) Add(req *dto.LinkAddReq) (int, error) {
	s := service.NewLinkService(p.svcCtx)
	return s.Add(req)
}

/**
 * @description(修改)
 * @buildcode(true)
*/
func (p linkLogic) Update(req *dto.LinkUpdateReq) error {
	s := service.NewLinkService(p.svcCtx)
	return s.Update(req)
}

/**
 * @description(删除)
 * @buildcode(true)
*/
func (p linkLogic) Delete(req *dto.LinkDeleteReq) error {
	s := service.NewLinkService(p.svcCtx)
	return s.Delete(req)
}

/**
 * @description(查看详情)
 * @buildcode(true)
*/
func (p linkLogic) Detail(req *dto.LinkDetailReq) (*vo.LinkDetail, error) {
	s := service.NewLinkService(p.svcCtx)
	return s.Detail(req)
}

